package threadTest.synchronizedTest;

/**
 * 功能描述: 信号灯 测试
 * 2024/02/21
 * <p>
 * ZhangYi
 */
public class SignalLampClientTest {
    public static void main(String[] args){
        Data data = new Data(); // 初始化资源类, 资源类中定义了两个方法, 一个加法方法, 一个减法方法

        // 多线程 必须 是对同一个资源的操作
        new Thread(()->{
            try {
                // 这里的执行次数 是10次  , 如果没有这个 循环, 那就是顺序执行, 只会执行一次 , 代码就会结束
                for (int i = 0; i < 10; i++) {
                    data.increament();
                }
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        },"生产者线程,+1  ").start();

        new Thread(()->{
            try {
                // 这里的执行次数 是10次  , 如果没有这个 循环, 那就是顺序执行, 只会执行一次 , 代码就会结束
                for (int i = 0; i < 10; i++) {
                    data.decreament();
                }
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        },"消费者线程,-1  ").start();


    }
}
